﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Guada
{
    public partial class FrmAtencionProfesional : Plantilla
    {
        string Profesional;
        string Especialidad;
        bool UsrProfesional;

        public FrmAtencionProfesional(string sProfesional, string sEspecialidad, bool bUsrProfesional)
        {
            InitializeComponent();
            Profesional = sProfesional;
            Especialidad = sEspecialidad;
            UsrProfesional = bUsrProfesional;
        }

        private void FrmAtencionProfesional_Load(object sender, EventArgs e)
        {
            try
            {
                if (UsrProfesional)
                {
                    CargarDgPacientes();
                }
                else
                {
                    btnAceptar.Visible = false;
                    MessageBox.Show("El usuario no es un profesional, por lo que no se \nvisualizaran pacientes pendientes de atencion.", "INFORMATION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    lblInfo.Visible = true;
                }
            }
            catch
            {
                MessageBox.Show("Sin Pacientes por atender.", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.Close();
            }
        }

        private void txtNumDoc_TextChanged(object sender, EventArgs e)
        {
            FiltrarDatos();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (dgPacientes.Rows.Count > 0)
            {
                FrmAtencionPaciente atencion = new FrmAtencionPaciente(dgPacientes.Rows[Convert.ToInt16(textBox1.Text)].Cells["IDHISTORIACLINICA"].Value.ToString(), Profesional, Especialidad);
                //FrmAtencionPaciente atencion = new FrmAtencionPaciente(dgPacientes.Rows[dgPacientes.CurrentRow.Index].Cells["IDHISTORIACLINICA"].Value.ToString(), Profesional, Especialidad);
                atencion.ShowDialog();
                dgPacientes.DataSource = null;
                CargarDgPacientes();
            }
        }

        private void dgPacientes_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnAceptar_Click(new object(), new EventArgs());
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CargarDgPacientes()
        {
            try
            {
                FacProFacu.Paciente pacientes = new FacProFacu.Paciente();
                dgPacientes.DataSource = pacientes.GetPacientesDia(Profesional, Especialidad).Tables["TURNOSDIA"];

                DataGridViewColumn col;
                dgPacientes.AutoGenerateColumns = false;
                dgPacientes.Columns.Clear();

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "IDHISTORIACLINICA";
                col.Name = "IDHISTORIACLINICA";
                col.Width = 1;
                col.HeaderText = "Id Historia Clínica";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);
                col.Visible = false;

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "FECHA";
                col.Name = "FECHA";
                col.Width = 20;
                col.HeaderText = "Fecha";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);
                col.Visible = false;

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "HORA";
                col.Name = "HORA";
                col.Width = 60;
                col.HeaderText = "Hora";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "PACIENTE";
                col.Name = "PACIENTE";
                col.Width = 125;
                col.HeaderText = "Paciente";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);

                  col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "NRODOC";
                col.Name = "NRODOC";
                col.Width = 90;
                col.HeaderText = "Documento";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "IDPROFESIONAL";
                col.Name = "IDPROFESIONAL";
                col.Width = 1;
                col.HeaderText = "Id Profesional";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);
                col.Visible = false;

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "PROFESIONAL";
                col.Name = "PROFESIONAL";
                col.Width = 125;
                col.HeaderText = "Profesional";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "IDESPECIALIDAD";
                col.Name = "IDESPECIALIDAD";
                col.Width = 1;
                col.HeaderText = "Id Especialidad";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);
                col.Visible = false;

                col = new DataGridViewTextBoxColumn();
                col.DataPropertyName = "ESPECIALIDAD";
                col.Name = "ESPECIALIDAD";
                col.Width = 180;
                col.HeaderText = "Especilidad";
                col.ReadOnly = true;
                dgPacientes.Columns.Add(col);

                if (((DataTable)dgPacientes.DataSource).Rows.Count > 0)
                    dgPacientes.Rows[0].Selected = true;
            }
            catch(Exception e)
            {
                MessageBox.Show(e.ToString(), "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dgPacientes.Visible = false;
                lblInfo.Visible = true;
                btnAceptar.Enabled = false;
            }
        }

        private void FiltrarDatos()
        {
            StringBuilder filtro = new StringBuilder();
            if (txtNumDoc.Text.Length > 0)
            {
                filtro.Append(" Nº Documento like '%" + txtNumDoc.Text + "%'");
            }
            if (txtNumDoc.Text.Length < 1)
            {
                CargarDgPacientes();
            }
        }

        private void dgPacientes_SelectionChanged(object sender, EventArgs e)
        {
            if(dgPacientes.Rows.Count>0)
            textBox1.Text = dgPacientes.CurrentRow.Index.ToString();
        }
    }
}
